package yl.hs.bmipfull.pojo.system;

import lombok.Data;
import org.springframework.lang.Nullable;
import yl.hs.bmipfull.annotations.DBField;
import yl.hs.bmipfull.annotations.DBTable;
import yl.hs.bmipfull.pojo.BaseEntity;

/**
 * 作用:  用户信息实体类 <br/>
 * 创建时间: 2021-05-09 17:33 <br/>
 *
 * @author 谢景广
 */
@Data
@DBTable(disName = "用户信息", mapCode = "user_info", category = "核心系统")
public class UserInfoEntity extends BaseEntity {

    /**
     * 主键
     */
    @Nullable
    private Long id;

    /**
     * 用户编号
     */
    @DBField(disName = "用户编号", mapCode = "sn", isSerialNumber = true, isRequire = true, snPrefix = "USER")
    private String sn;

    /**
     * 用户登录账户
     */
    @DBField(disName = "用户登录账户", mapCode = "account")
    private String account;

    /**
     * 用户昵称
     */
    @DBField(disName = "用户昵称", mapCode = "nickname")
    private String nickname;

    /**
     * 用户姓名
     */
    @DBField(disName = "用户姓名", mapCode = "realname")
    private String realname;

    /**
     * 用户姓名拼音
     */
    private String realnamePY;
    /**
     * 用户头像
     */
    private String imageSN;

    /**
     * 用户手机号
     */
    @DBField(disName = "用户手机号", mapCode = "mobileNum")
    private String mobileNum;

    /**
     * 用户微信号
     */
    @DBField(disName = "用户微信号", mapCode = "wechatNum")
    private String wechatNum;

    /**
     * 用户QQ号
     */
    @DBField(disName = "用户QQ号", mapCode = "qqNum")
    private String qqNum;

    /**
     * 用户微博
     */
    @DBField(disName = "用户微博", mapCode = "sinaNum")
    private String sinaNum;


    /**
     * 组织代码
     */
    @DBField(disName = "组织代码", mapCode = "organizationCode")
    private String organizationCode;

    /**
     * 公司编号
     */
    @DBField(disName = "公司编号", mapCode = "companySN")
    private String companySN;

    /**
     * 邮箱
     */
    @DBField(disName = "邮箱", mapCode = "email")
    private String email;


    /**
     * 性别
     */
    @DBField(disName = "性别", mapCode = "gender")
    private boolean gender;

    /**
     * 语言
     */
    @DBField(disName = "语言", mapCode = "useLanguage")
    private String useLanguage;

    /**
     * 账户来源
     */
    @DBField(disName = "邮箱", mapCode = "userFrom")
    private String userFrom;

    /**
     * 皮肤
     */
    @DBField(disName = "皮肤", mapCode = "theme")
    private String theme;

    @DBField(disName = "手机注册码", mapCode = "phoneCode")
    private String phoneCode;

    /**
     * 账户状态(-1:已删除,0：正常)
     */
    @DBField(disName = "账户状态", mapCode = "state")
    private Short state;
    @DBField(disName = "备注", mapCode = "remark")
    private String remark;
    @DBField(disName = "用户类型", mapCode = "type")
    private Integer type;
    public UserInfoEntity() {
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public UserInfoEntity(@Nullable Long id, String sn, String account, String nickname, String realname, String realnamePY, String imageSN, String mobileNum, String wechatNum, String qqNum, String sinaNum, String organizationCode, String companySN, String email, boolean gender, String useLanguage, String userFrom, String theme, Short state) {
        this.id = id;
        this.sn = sn;
        this.account = account;
        this.nickname = nickname;
        this.realname = realname;
        this.realnamePY = realnamePY;
        this.imageSN = imageSN;
        this.mobileNum = mobileNum;
        this.wechatNum = wechatNum;
        this.qqNum = qqNum;
        this.sinaNum = sinaNum;
        this.organizationCode = organizationCode;
        this.companySN = companySN;
        this.email = email;
        this.gender = gender;
        this.useLanguage = useLanguage;
        this.userFrom = userFrom;
        this.theme = theme;
        this.state = state;
    }

    public UserInfoEntity(String sn,String realname){
        this.sn = sn;
        this.realname = realname;
    }

    @Nullable
    public Long getId() {
        return id;
    }

    public void setId(@Nullable Long id) {
        this.id = id;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public String getRealnamePY() {
        return realnamePY;
    }

    public void setRealnamePY(String realnamePY) {
        this.realnamePY = realnamePY;
    }

    public String getImageSN() {
        return imageSN;
    }

    public void setImageSN(String imageSN) {
        this.imageSN = imageSN;
    }

    public String getMobileNum() {
        return mobileNum;
    }

    public void setMobileNum(String mobileNum) {
        this.mobileNum = mobileNum;
    }

    public String getWechatNum() {
        return wechatNum;
    }

    public void setWechatNum(String wechatNum) {
        this.wechatNum = wechatNum;
    }

    public String getQqNum() {
        return qqNum;
    }

    public void setQqNum(String qqNum) {
        this.qqNum = qqNum;
    }

    public String getSinaNum() {
        return sinaNum;
    }

    public void setSinaNum(String sinaNum) {
        this.sinaNum = sinaNum;
    }

    public String getOrganizationCode() {
        return organizationCode;
    }

    public void setOrganizationCode(String organizationCode) {
        this.organizationCode = organizationCode;
    }

    public String getCompanySN() {
        return companySN;
    }

    public void setCompanySN(String companySN) {
        this.companySN = companySN;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public boolean isGender() {
        return gender;
    }

    public void setGender(boolean gender) {
        this.gender = gender;
    }

    public String getUseLanguage() {
        return useLanguage;
    }

    public void setUseLanguage(String useLanguage) {
        this.useLanguage = useLanguage;
    }

    public String getUserFrom() {
        return userFrom;
    }

    public void setUserFrom(String userFrom) {
        this.userFrom = userFrom;
    }

    public String getTheme() {
        return theme;
    }

    public void setTheme(String theme) {
        this.theme = theme;
    }

    public Short getState() {
        return state;
    }

    public void setState(Short state) {
        this.state = state;
    }

    public void setPhoneCode(String phoneCode) {
        this.phoneCode = phoneCode;
    }

    public String getPhoneCode() {
        return phoneCode;
    }
}
